Programas só podem ajudar com a legibilidade.
O R possui vários dispositivos gráficos. Um dispositivo é "para onde" o gráfico vai.
Dispositivos de tela
Dispositivos de arquivos
dev.cur()
dev.list()
dev.off()
Sempre feche o dispositivo
plot(x,y, . . . )
boxplot(x, . . . )
hist(x, . . . )
barplot(x, . . . )
png("MEUGRAFICO.PNG")
x<-c(1:10)
y<-c(2:11)
plot(x,y, bty="l")
dev.off()
## png ## 2
numeros<- rnorm(10000) boxplot(numeros)
numeros<-rnorm(10000) hist(numeros)
Argumentos da função:
type altera o tipo de gráfico ( p- pontos, l - linhas, h -histograma, etc);
main título do gráfico;
xlab título do eixo x;
ylab título do eixo y;
xlim limites do eixo x;
ylim limites do eixo y;
col cores.
No R é possível expressar a relação entre variáveis usando formulas.
Medidas da qualidade do ar em Nova York, 1973.
data(airquality) airquality$date<-with(airquality,ISOdate(1973,Month,Day) ) head(airquality)
## Ozone Solar.R Wind Temp Month Day date ## 1 41 190 7.4 67 5 1 1973-05-01 12:00:00 ## 2 36 118 8.0 72 5 2 1973-05-02 12:00:00 ## 3 12 149 12.6 74 5 3 1973-05-03 12:00:00 ## 4 18 313 11.5 62 5 4 1973-05-04 12:00:00 ## 5 NA NA 14.3 56 5 5 1973-05-05 12:00:00 ## 6 28 NA 14.9 66 5 6 1973-05-06 12:00:00
# plot(airquality$date,airquality$Ozone) # plot(airquality$Ozone ∼ airquality$date) plot(Ozone ~ date, data=airquality)
plot(Ozone ~ date, data= airquality, type="l")
plot(Ozone ~ date, data= airquality, type="h")
plot(Ozone ~ date, data= airquality, type="h", main="Qualidade do ar",
xlab="Data", ylab="Ozônio", col= "red")
bad<-ifelse(airquality$Ozone>=90,"orange","forestgreen") plot(Ozone~date, data=airquality,type="h",col=bad)
legend(x, y, legenda)
axis(side, . . . )
text(x, y, labels, . . . )
mtext(texto, side=3, line=0, . . . )
points(x)
lines(x, y)
segments(x0, y0, x1, y1)
arrows(x0,y0, x1, y1, angle=30, code=2)
abline(a, b)
abline(h=y)
abline(v=x)
plot(x,y,type="n")
axis(4)
text(8,8,"Comentário")
mtext("texto lateral",side=4)
points(1:10,rep(4,10))
abline(h=7)
abline(v=3)
arrows(1:10,rep(4,10),1:10,rep(5,10), angle=45)
A função par controla parâmetros gráficos.
Alguns argumentos:
-cex tamanho relativo do texto e símbolos (padrão = 1);
-col cores dos símbolos e textos (ex. col="red");
-pch tipo de simbolo utilizado (ex. pch=16);
-new permite que novos gráficos sejam sobrepostos (padrão FALSE)
-family família da fonte (ex. “serif”);
-mfrow divide a área de plotagem na forma de tabela (padrãoc(1,1)
par(mfrow=c(2,2),new=FALSE,family="serif") plot(1:4,1:4,pch=19,col="green") plot(4:1,1:4,pch=22,col="red") plot(1:5,2:6,pch=25) plot(1:5,1:5,pch= "p")
x<-1:10 ; x2<-10:1 ; y<-1:10
plot(x,y,col="red",pch=16)
points(x2,y,col="blue", pch=16) # adiciona pontos novos
legend(5,10,legend=c("azul","vermelho"),pch=16,col=c("blue","red"))
par(mar=c(5,4,4,5))
plot(Ozone~date, data=airquality,type="h",col="blue",
ylab="Ozonio",xlab="Data")
par(new=TRUE) # faz a sobreposicao
plot(airquality$date,airquality$Wind,type="l",col="red")
par(mar=c(5,4,4,5))
plot(Ozone~date, data=airquality,type="h",col="blue",
ylab="Ozonio",xlab="Data")
par(new=TRUE)
plot(airquality$date,airquality$Wind,type="l",col="red",
xaxt="n",yaxt="n",xlab="",ylab="") # suprime os eixos e os titulos
axis(4) # adiciona o eixo no lado 4
mtext("Vento",side=4,line=3) # adiciona o titulo do lado do eixo
x<-rnorm(10000)+0.2 hist(x, bty="l", prob=T, main="", ylim=c(0,0.45)) lines(density(x), col="red",lty=2, lwd=2) curve(dnorm(x,0,1), add=TRUE, col="blue", lty=3, lwd=2)
par(mfrow=c(1,2)) qqnorm(x) qqnorm(rexp(1000,3)) ;qqline(rexp(1000,3), col="red")
plot(airquality)
boxplot(len ~ dose:supp, data = ToothGrowth,
boxwex = 0.5, col = c("orange", "yellow"),
xlab = "Vitamin C dose mg", ylab = "tooth length")
locator(n)
plot(Ozone~date, data=airquality, type="h")
main="Qualidade do ar",xlab="data",ylab="Ozônio",col="red")
abline(h=90, lty=2)
text(locator(3),"Muito Ruim", adj=0)
Não funciona no slide
library(plotly)
library(ggplot2)
set.seed(100)
d <- diamonds[sample(nrow(diamonds), 1000), ]
plot_ly(d, type="scatter",x = d$carat,
y = d$price,text = paste("Clarity: ", d$carat),
mode = "markers", color = d$carat, size = d$carat)
## Warning: `line.width` does not currently support multiple values.
library(manipulate)
manipulate(
plot(cars, xlim = c(0, x.max), type = type, ann = label),
x.max = slider(10, 25, step=5, initial = 25),
type = picker("Points" = "p", "Line" = "l", "Step" = "s"),
label = checkbox(TRUE, "Draw Labels"))
Não funciona do slide
A escolha de quais cores usar não é algo simples.
Algumas ferramentas podem ajudar:
www.colorbrewer.org tem esquemas de cores desenvolvidos para mapas (estão disponiveis no pacote RColorBrewer)
Pacote colorspace tem vários esquemas de cores;
Pacote dichromat tenta mostrar o impacto dos esquemas de cores para daltônicos.
library(RColorBrewer) display.brewer.all()
x<-1:10 barplot(x,col=brewer.pal(10,"BrBG"))
Para ver as cores do R demo(colors)
barplot(c(10,20,20,10,5), col=c("#ff9999ff", "#ff1010ff", "#10ffadff",
"#fff410ff", "#ff10ecff"))
par(mfrow=c(1,2)) x<-rep(5,times=100) y<-rep(5,times=100) plot(x,y, xlim=c(4,6), ylim=c(4,6)) plot(jitter(x),jitter(y), xlim=c(4,6), ylim=c(4,6))
library("survey")
data(api)
plot(apipop$api00, apipop$api99)
library("hexbin")
plot(hexbin(apipop$api99,apipop$api00), style="centroids")
image(volcano)
plot_ly(z = volcano, type = "surface")
require(maps)
## Loading required package: maps
map('world', fill = TRUE, col=brewer.pal(8,"BrBG"))
## usa um banco interno
require(maptools)
require(sp)
mapa=readShapePoly("BRASIL")
hidro=readShapeLines("hidrografia")
summary(mapa)
summary(hidro)
#limites do mapa
plot(mapa)
par(new=F)
plot(hidro,col="blue")
require(sp)
require(maptools)
require(rgdal)
mapa<-readOGR("BRASIL.shp", verbose=FALSE)
hidro=readOGR("hidrografia.shp",verbose=FALSE )
#limites do mapa
plot(mapa)
par(new=T)
plot(hidro,col="blue")
flag<-read.table("flag.data.txt", sep=",")
dir.create("flags")
png(filename ="flags/bandeira%3d.png")
for(i in 1:nrow(flag)){
pie(as.numeric(flag[i,11:16]), main=flag[i,1],
labels= c( "red", "green","blue", "gold" , " white", "black"),
col= c( "red", "green","blue", "yellow" , "white", "black"))
}
dev.off()
Links para ver exemplos
Ler capítulo 6 da apostila;
Fazer tutorial “Criação e edição de gráficos”
Fazer exercícios “Gráficos simples”
Leia a ajuda da função par ;
Explore os sites de exemplos do slide anterior;